package cn.com.generaldata.os.ws.intf;

import java.util.List;

import javax.jws.WebMethod;
import javax.jws.WebService;

import cn.com.generaldata.os.newpojo.SystemCodedic;
import cn.com.generaldata.os.vo.IndicatorAccountVO;
import cn.com.generaldata.os.vo.IndicatorDataVO;
import cn.com.generaldata.os.vo.IndicatorInputVO;
import cn.com.generaldata.os.vo.ResultVO;

/**
 * 指标管理Webservice操作接口.
 */
@WebService
public interface IndicatorWSInterface {

	/**
	 * 指标项查询
	 */
	@WebMethod
	ResultVO<IndicatorInputVO> findIndicatorInputs(String type, String name, Integer frequency, Integer pageNum);

	/**
	 * 指标值录入
	 */
	@WebMethod
	String createIndicator(IndicatorDataVO indiVo);

	/**
	 * 指标值查询
	 */
	@WebMethod
	ResultVO<IndicatorDataVO> queryIndicatorData(IndicatorDataVO indiVo, Integer pageNum);

	/**
	 * 指标值删除
	 */
	@WebMethod
	void removeIndicator(List<String> ids);

	/**
	 * 指标值查询唯一
	 */
	@WebMethod
	Double checkIndicator(int id, String areaId, int timeTYpe, int year);

	/**
	 * 指标值查询能否修改
	 */
	@WebMethod
	boolean checkUpdateIndicator(String id, String areaId);

	/**
	 * 指标值修改
	 */
	@WebMethod
	String updateIndicator(IndicatorDataVO indiVo);

	/**
	 * 指标值核算
	 */
	@WebMethod
	ResultVO<IndicatorAccountVO> queryIndicatorAccount(IndicatorAccountVO indiVo, Integer pageNum);

	/**
	 * 生成核算指标值
	 */
	@WebMethod
	String indicatorAccount(IndicatorAccountVO vo);

	/**
	 * 手工更新核算指标值
	 */
	@WebMethod
	String updateIndicatorAccount(IndicatorAccountVO indiVo);

	/**
	 * 导入录入指标数据
	 */
	@WebMethod
	String importIndicator(byte[] content, String fileName, String fileType, String uid);

	@WebMethod
	IndicatorDataVO checkIndicatorExists(int id, String areaId,
			Integer timeType, Integer yearType, int year, Integer quarter);

	/**
	 * 生成评估指标值
	 */
	@WebMethod
	void indicatorEvaluation(IndicatorAccountVO vo);

	/**
	 * 查询评估指标值
	 */
	@WebMethod
	ResultVO<IndicatorAccountVO> queryIndicatorEvaluation(
			IndicatorAccountVO indiVo, Integer pageNum);

	List<SystemCodedic> queryType();

	ResultVO<IndicatorAccountVO> queryIndicatorAccountSort(
			IndicatorAccountVO indiVo, Integer pageNum, String sort);

	String calculateSingleIndicator(String id);
}
